<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.0"?>
<!--
    Copyright (c) 2004, 2014 IBM Corporation and others.

    This program and the accompanying materials
    are made available under the terms of the Eclipse Public License 2.0
    which accompanies this distribution, and is available at
    https://www.eclipse.org/legal/epl-2.0/

    SPDX-License-Identifier: EPL-2.0
    
    Contributors:
        IBM Corporation - initial API and implementation
        Harry Terkelsen (het@google.com) - Bug 449262 - Allow the use of third-party Java formatters
 -->

<!-- =================================================================================== -->
<!-- JDT/CORE Plug-in Manifest                                                           -->
<!-- =================================================================================== -->
<plugin>

<!-- =================================================================================== -->
<!-- Prerequisite Plug-ins                                                               -->
<!-- =================================================================================== -->


<!-- =================================================================================== -->
<!-- Runtime Libraries                                                                   -->
<!-- =================================================================================== -->


<!-- =================================================================================== -->
<!-- Extension Point: Initializers of Classpath Variables                                -->
<!-- =================================================================================== -->

<extension-point name="%classpathVariableInitializersName" 
	id="classpathVariableInitializer"
	schema="schema/classpathVariableInitializer.exsd"/>
  
<!-- =================================================================================== -->
<!-- Extension Point: Initializers of Classpath Containers                               -->
<!-- =================================================================================== -->

<extension-point name="%classpathContainerInitializersName" 
	id="classpathContainerInitializer" 
	schema="schema/classpathContainerInitializer.exsd"/>

<!-- =================================================================================== -->
<!-- Extension Point: Formatter of Source Code                                           -->
<!-- =================================================================================== -->

<extension-point name="%codeFormattersName" 
	id="codeFormatter"
	schema="schema/codeFormatter.exsd"/>

<!-- =================================================================================== -->
<!-- Extension Point: Compilation Participant                                            -->
<!-- =================================================================================== -->

<extension-point name="%compilationParticipantsName" 
	id="compilationParticipant"
	schema="schema/compilationParticipant.exsd"/>

<!-- =================================================================================== -->
<!-- Extension Point: Java 6 Annotation Processor Manager                                -->
<!-- =================================================================================== -->

<extension-point name="%annotationProcessorManagerName" 
	id="annotationProcessorManager"
	schema="schema/annotationProcessorManager.exsd"/>

<!-- =================================================================================== -->
<!-- Extension Point: Java Source Formatter                                              -->
<!-- =================================================================================== -->

<extension-point name="%javaFormatterName"
  id="javaFormatter"
  schema="schema/javaFormatter.exsd"/>

<!-- =================================================================================== -->
<!-- Extension: Java Nature                                                              -->
<!-- =================================================================================== -->

<extension 
	point="org.eclipse.core.resources.natures" 
	id="javanature"
	name="%javaNatureName">
	<runtime>
		<run class="org.eclipse.jdt.internal.core.JavaProject">
		</run>
	</runtime>
</extension>


<!-- =================================================================================== -->
<!-- Extension: Java Builder                                                             -->
<!-- =================================================================================== -->

<extension 
	point="org.eclipse.core.resources.builders" 
	id="javabuilder"
	name="%javaBuilderName">
	<builder>
		<run class="org.eclipse.jdt.internal.core.builder.JavaBuilder">
		</run>
		<dynamicReference class="org.eclipse.jdt.internal.core.DynamicProjectReferences"/>
	</builder>
</extension>

<!-- =================================================================================== -->
<!-- Extension: Java Problem                                                             -->
<!-- =================================================================================== -->
<extension id="problem" point="org.eclipse.core.resources.markers" name="%javaProblemName">
	<super type="org.eclipse.core.resources.problemmarker"/>
	<super type="org.eclipse.core.resources.textmarker"/>
	<persistent value="true"/>
	<attribute name="id"/>
	<attribute name="flags"/>
	<attribute name="arguments"/>
	<attribute name="categoryId"/>
</extension>   

<!-- =================================================================================== -->
<!-- Extension: Java Buildpath Problem                                                   -->
<!-- =================================================================================== -->
<extension id="buildpath_problem" point="org.eclipse.core.resources.markers" name="%buildPathProblemName">
	<super type="org.eclipse.core.resources.problemmarker"/>
	<super type="org.eclipse.core.resources.textmarker"/>
	<persistent value="true"/>
	<attribute name ="cycleDetected"/>
	<attribute name="id"/>
	<attribute name="arguments"/>
</extension>   

<!-- =================================================================================== -->
<!-- Extension: Java Transient Problem                                                   -->
<!-- =================================================================================== -->
<extension id="transient_problem" point="org.eclipse.core.resources.markers" name="%transientJavaProblemName">
	<super type="org.eclipse.core.resources.textmarker"/>
	<persistent value="false"/>
	<attribute name="id"/>
	<attribute name="flags"/>
	<attribute name="arguments"/>
</extension>

<!-- =================================================================================== -->
<!-- Extension: Java Task                                                                -->
<!-- =================================================================================== -->
<extension id="task" name="%javaTaskName" point="org.eclipse.core.resources.markers">
    <super type="org.eclipse.core.resources.taskmarker"/> 
    <persistent value="true"/>
</extension>
    
<!-- =================================================================================== -->
<!-- Extension: Javac Ant Adapter                                                        -->
<!-- =================================================================================== -->
<extension 
	point="org.eclipse.ant.core.extraClasspathEntries">
	<extraClasspathEntry
		library="jdtCompilerAdapter.jar">
	</extraClasspathEntry>
</extension> 

<!-- =================================================================================== -->
<!-- Extension: Javac Ant Task                                                           -->
<!-- =================================================================================== -->
<extension point="org.eclipse.ant.core.antTasks">
	<antTask
		name="eclipse.checkDebugAttributes"
		class="org.eclipse.jdt.core.CheckDebugAttributes"
		library="jdtCompilerAdapter.jar">
	</antTask>
	<antTask
		name="eclipse.buildJarIndex"
		class="org.eclipse.jdt.core.BuildJarIndex"
		library="jdtCompilerAdapter.jar">
	</antTask>
</extension>
      
<!-- =================================================================================== -->
<!-- Extension: User Library Container                                                   -->
<!-- =================================================================================== -->
<extension
      point="org.eclipse.jdt.core.classpathContainerInitializer">
      <classpathContainerInitializer
            class="org.eclipse.jdt.internal.core.UserLibraryClasspathContainerInitializer"
            id="org.eclipse.jdt.USER_LIBRARY">
      </classpathContainerInitializer>
   </extension>

<!-- =================================================================================== -->
<!-- Extension: Module Path Container                                                   -->
<!-- =================================================================================== -->
<extension
      point="org.eclipse.jdt.core.classpathContainerInitializer">
      <classpathContainerInitializer
            class="org.eclipse.jdt.internal.core.ModulePathContainerInitializer"
            id="org.eclipse.jdt.MODULE_PATH">
      </classpathContainerInitializer>
   </extension>

<!-- =================================================================================== -->
<!-- Extension: Java File Types                                                          -->
<!-- =================================================================================== -->
<extension point="org.eclipse.team.core.fileTypes">
	<fileTypes extension="java" type="text"/>
	<fileTypes extension="classpath" type="text"/>
	<fileTypes extension="properties" type="text"/>
	<fileTypes extension="class" type="binary"/>
	<fileTypes extension="jar" type="binary"/>
	<fileTypes extension="jardesc" type="text"/>
	<fileTypes extension="zip" type="binary"/>
</extension>

<!-- =================================================================================== -->
<!-- Extension: Java Code Formatter                                                      -->
<!-- =================================================================================== -->
<extension
      id="JavaCodeFormatter"
      point="org.eclipse.core.runtime.applications">
      	<application>
      		<run class="org.eclipse.jdt.core.formatter.CodeFormatterApplication" />
		</application>
</extension>

<!-- =================================================================================== -->
<!-- Extension: Java Generate Indexer                                                    -->
<!-- =================================================================================== -->
<extension
      id="JavaIndexer"
      point="org.eclipse.core.runtime.applications">
   		<application>
      		<run class="org.eclipse.jdt.core.index.JavaIndexerApplication" />
   		</application>
</extension>

<!-- =================================================================================== -->
<!-- Extension: Java Content Types                                                       -->
<!-- =================================================================================== -->
<extension point="org.eclipse.core.contenttype.contentTypes">
	<!-- declares a content type for Java Properties files -->
	<content-type id="javaProperties" name="%javaPropertiesName" 
		base-type="org.eclipse.core.runtime.text"
		priority="high"				
		file-extensions="properties"
		default-charset="ISO-8859-1"/>
	<!-- Associates .classpath to the XML content type -->
	<file-association 
		content-type="org.eclipse.core.runtime.xml" 
		file-names=".classpath"/>  
	<!-- declares a content type for Java Source files -->
	<content-type id="javaSource" name="%javaSourceName" 
		base-type="org.eclipse.core.runtime.text"
		priority="high"				
		file-extensions="java"/>
	<!-- declares a content type for Java class files -->
    <content-type id="javaClass" name="%javaClassName" 
        priority="high"				
        file-extensions="class">        
        <describer
            class="org.eclipse.core.runtime.content.BinarySignatureDescriber">
            <parameter name="signature" value="CA, FE, BA, BE"/>
        </describer>
    </content-type>        
	<!-- declares a content type for JAR manifest files -->
    <content-type id="JARManifest" name="%jarManifestName" 
        base-type="org.eclipse.core.runtime.text"
        priority="high"				
        file-names="MANIFEST.MF"
        default-charset="UTF-8"/>
</extension>
      
<!-- =================================================================================== -->
<!-- Extension: Eclipse preferences initializer                                          -->
<!-- =================================================================================== -->
<extension
      point="org.eclipse.core.runtime.preferences">
   <initializer class="org.eclipse.jdt.internal.core.JavaCorePreferenceInitializer"/>
</extension>
<extension
      point="org.eclipse.core.runtime.preferences">
   <modifier class="org.eclipse.jdt.internal.core.JavaCorePreferenceModifyListener"/>
</extension>

<!-- =================================================================================== -->
<!-- Extension: Eclipse tracing                                                          -->
<!-- =================================================================================== -->
<extension
      point="org.eclipse.ui.trace.traceComponents">
   <component
         id="org.eclipse.jdt.core.trace"
         label="%traceComponentLabel">
      <bundle
            consumed="false"
            name="org.eclipse.jdt.core">
      </bundle>
   </component>
</extension>

<!-- =================================================================================== -->
<!-- Extension: Java Code Formatter                                                      -->
<!-- =================================================================================== -->
<extension
      point="org.eclipse.jdt.core.javaFormatter">
   <javaFormatter
         class="org.eclipse.jdt.internal.formatter.DefaultCodeFormatter"
         id="org.eclipse.jdt.core.defaultJavaFormatter"
         name="%defaultJavaFormatterName">
   </javaFormatter>
</extension>

</plugin>
